
let condition={};
let dialog=false;

let debug={};

let out=(...items)=>{
    for(let key in condition){
        if(!condition[''+key+'']){
            return false;
        }
    }
    if(dialog){
        window.alert(items);
    }else{
        console.log(...items);
    }
    return true;
};
let err=()=>{
    for(let key in condition){
        if(!condition[''+key+'']){
            return;
        }
    }
    throw new Error('break by Debug!');
};

/**
 * 调试打印
 * 示例：
 * Debug.c0=true;  条件1
 * Debug.c1=true;  条件2
 * Debug.out('aaa');  都满足，控制台输出
 * Debug.err();  都满足，报错
 * Debug.c2=false;   条件3
 * Debug.out('bbb');  条件3不满足，不输出
 * Debug.clear;      清空条件
 * Debug.dialog=true; 对话框输出
 * Debug.out('ccc');  没有条件限制，对话框输出
 * Debug.reset;      重置
 * Debug.out('ddd');  没有条件限制，控制台输出
 */
let Debug=new Proxy(debug,{
    set:(target,key,value)=>{
        if(key==='dialog'){
            dialog=value;
        }else{
            condition[key]=value;
        }
        return true;
    },
    get:(target,key)=>{
        if(key==='out'){
            return out;
        }else if(key==='err'){
            return err;
        }else if(key==='clear'){
            condition={};
        }else if(key==='reset'){
            condition={};
            dialog=false;
        }
    }
});

export default Debug;